package orz.itrip.sftp;

import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSchException;

import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

public class SFTPUtils {
    public SFTPChannel getSFTPChannel() {
        return new SFTPChannel();
    }


    /**
     * 上传文件到linux
     * @param ip
     * @param userName
     * @param passWord
     * @param port
     * @param input
     * @param dst
     * @throws Exception
     */
    public static void upload(String ip, String userName, String passWord, String port, InputStream input,String dst) throws Exception {
        SFTPUtils test = new SFTPUtils();

        Map<String, String> sftpDetails = new HashMap<String, String>();
        // 设置主机ip，端口，用户名，密码
        sftpDetails.put(SFTPConstants.SFTP_REQ_HOST, ip);
        sftpDetails.put(SFTPConstants.SFTP_REQ_USERNAME, userName);
        sftpDetails.put(SFTPConstants.SFTP_REQ_PASSWORD, passWord);
        sftpDetails.put(SFTPConstants.SFTP_REQ_PORT, port);

        SFTPChannel channel = test.getSFTPChannel();
        //连接linux
        ChannelSftp chSftp = channel.getChannel(sftpDetails, 60000);

        //文件传输
        chSftp.put(input, dst, ChannelSftp.OVERWRITE); 
        
        input.close();
        chSftp.quit();
        channel.closeChannel();
    }
}
